pub to_doc_test: Vec<Package>,
/// Features enabled during this compilation.
- pub features: HashSet<String>,
+ pub cfgs: HashSet<String>,
config: &'cfg Config,
}
binaries: Vec::new(),
extra_env: HashMap::new(),
to_doc_test: Vec::new(),
- features: HashSet::new(),
+ cfgs: HashSet::new(),
config: config,
}
}
}
}
- if let Some(feats) = cx.resolve.features(root.package_id()) {
- cx.compilation.features.extend(feats.iter().cloned());
+ let root_pkg = root.package_id();
+ if let Some(feats) = cx.resolve.features(root_pkg) {
+ cx.compilation.cfgs.extend(feats.iter().map(|feat| {
+ format!("feature=\"{}\"", feat)
+ }));
}
for (&(ref pkg, _), output) in cx.build_state.outputs.lock().unwrap().iter() {
+ if pkg == root_pkg {
+ cx.compilation.cfgs.extend(output.cfgs.iter().cloned());
+ }
let any_dylib = output.library_links.iter().any(|l| {
!l.starts_with("static=") && !l.starts_with("framework=")
});
p.arg("--test-args").arg(&test_args.connect(" "));
}
- for feat in compilation.features.iter() {
- p.arg("--cfg").arg(&format!("feature=\"{}\"", feat));
+ for cfg in compilation.cfgs.iter() {
+ p.arg("--cfg").arg(cfg);
}
for (_, libs) in compilation.libraries.iter() {